速修复!热门开源库SQLite Database中的这个严重漏洞已存在22年,影响所有版本
编译:代码卫士
SQLite Database库中存在一个高危漏洞(CVE-2022-35737,CVSS编号为7.5),最早可追溯至2000年10月。该漏洞可导致攻击者使程序崩溃或控制程序。
该漏洞已存在22年,影响SQLite 1.0.12至3.39.1版本,已在2022年7月1日发布的版本3.39.2中修复。
Trail of Bits 公司的研究员 Andreas Kellas 在刚刚发布的技术分析文章中指出,“CVE-2022-35737可在64位系统上遭利用,具体可利用性取决于程序是如何编译的。当该库在没有 stack canary 的情况下编译时会导致任意代码执行,但出现stack canary 时无法证实会发生任意代码执行后果,不过在所有情况下都会导致拒绝服务。”
SQLite用C语言编写,是使用最广泛的数据库引擎,默认包含在安卓、iOS、Windows 和 macOS以及热门web浏览器如 Google Chrome、Mozilla Firefox 和 Apple Safari 中。
CVE-2022-25737是一个整数溢出漏洞。当极大的字符串输入被当做参数传递给 printf 函数的SQLite 实现中时会触发整数溢出,而这些实现使用其它函数处理字符串格式 (“sqlite3_str_vappendf”)。
然而,成功利用该漏洞的前提条件是,该字符串中包含 %Q、%q 或 %w格式的可替换类型,从而可能导致用户控制的数据被写入栈分配的缓冲区边界。
Kellas 解释称,“如果格式字符串中包含 ‘!’特殊字符,启用unicode字符扫描,则在最糟糕情况下很可能实现任意代码执行,或者导致程序挂起和接近于无限循环。”
该漏洞也说明了一种在数十年前被认为不切实际的场景,即分配1GB字符串作为输入,随着64位计算系统的到来是可行的。
Kellas 指出,“在2000年SQLite源代码中,这个bug可能并未被视作错误,当时系统架构主要是32位的。”
SQLite 再被曝 RCE 漏洞
SQLite 被曝RCE漏洞 Chrome 等数百万应用受影响
https://thehackernews.com/2022/10/22-year-old-vulnerability-reported-in.html
题图:韦伯太空望远镜,NASA
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。